package com.libraryApp.mapper;

import com.libraryApp.appVo.AppBorrowingVo;
import com.libraryApp.entity.BookDo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @CreateDate 2021-03-09
 * @Author yufang
 */
public interface AppBookMapper {


    /**
     * 查询用户书架
     * @param userId
     * @return
     */
    List<BookDo> getBookshelfById(Long userId);

    /**
     * 图书搜索
     * @param bookCategoryId
     * @param keyword
     * @param searchType
     * @return
     */
    List<BookDo> searchBook(@Param("bookCategoryId") int bookCategoryId,
                            @Param("keyword") String keyword,
                            @Param("type") String searchType);

    /**
     * 获取热门图书
     * @return
     */
    List<BookDo> getHotBook();

    /**
     * 获取图书详情
     * @param bookId
     * @return
     */
    BookDo getBookData(int bookId);

    /**
     * 加入书架
     * @param bookId
     * @return
     */
    int addBookshelf(@Param("bookId") int bookId,@Param("userId") long userId);

    /**
     * 查询用书是否拥有正在借阅记录
     * @param userId
     * @param bookId
     * @return
     */
    int getBorrowCount(Long userId, int bookId);

    /**
     * 新增用户预约借阅
     */
    void addBorrow(AppBorrowingVo appBorrowingVo);

    /**
     * 更新图书库存
     * @param bookId
     */
    void updateBookStock(int bookId);

    /**
     * 查询图书库存
     * @param bookId
     * @return
     */
    int getBookStock(int bookId);
}
